package avicit.bdp.dgs.mdm.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.dgs.mdm.dto.MdmLogDTO;
import avicit.bdp.dgs.mdm.dto.MdmMetricDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-12-14
 * @类说明：MdmLogDAO
 * @修改记录：
 * @注意事项：
 * @主要功能：主数据审计日志DAO。1、新增/删除/生效/失效/分发时记录日志；2、一条数据一个日志记录；
 */
@Repository
public interface MdmLogDAO extends BaseDAO<MdmLogDTO> {
    /**
     * 删除数据
     *
     * @param dataId 数据ID
     * @return
     */
    int deleteLogByCond(@Param("dataId") String dataId);

    /**
     * 统计数据总量
     *
     * @return
     */
    long countData();

    /**
     * 统计已分发数据总量
     *
     * @return
     */
    long countDistributedData();

    /**
     * 根据状态统计数据总量
     *
     * @return
     */
    List<MdmMetricDTO> countDataByStatus();

    /**
     * 查看近24h新增数据量
     *
     * @param condList 查询条件，{[startTime,endTime]...}
     * @return
     */
    List<MdmMetricDTO> countLast24hAddData(@Param("condList") List<MdmMetricDTO> condList);

    /**
     * 查看近7天新增数据量
     *
     * @return
     */
    List<MdmMetricDTO> countLast7DaysAddData();

    /**
     * 查看近30天新增数据量
     *
     * @return
     */
    List<MdmMetricDTO> countLast30DaysAddData();
}
